package la.iok.hzsvn.lewin.movie.mapper;

import la.iok.hzsvn.lewin.movie.entity.Movie;
import la.iok.hzsvn.lewin.mybatis.mapper.BaseMapper;
import la.iok.hzsvn.share.annotations.NotNull;
import la.iok.hzsvn.share.annotations.Nullable;

import java.util.List;

public interface MovieMapper extends BaseMapper<Movie> {
    /**
     * 插入剧本
     * @param entity 剧本信息
     */
    void insert(@NotNull Movie entity);

    /**
     * 更新剧本信息
     * @param entity 剧本信息
     */
    void update(@NotNull Movie entity);

    /**
     * 查询剧本列表
     * @param name 名称,模糊查询
     * @param author 作者,模糊查询
     * @param tag 标签,模糊查询
     * @param minPlayers 最少玩家数量
     * @param maxPlayers 最多玩家数量
     * @param minDuration 最小时长
     * @param maxDuration 最多时长
     * @return 剧本列表
     */
    List<Movie> list(@Nullable String name,@Nullable String author, @Nullable String tag,
                     @Nullable Integer minPlayers, @Nullable Integer maxPlayers,
                     @Nullable Integer minDuration, @Nullable Integer maxDuration);
}
